
package com.google.api.ads.adwords.jaxws.v201109_1.cm;

import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;


/**
 * 
 *       Use this service to override a campaign's existing
 *       {@linkplain LocationExtension location extension} for specific ads within
 *       that campaign. The following conditions apply to ad extension overrides:
 *       <ul>
 *       <li>Only location extensions can be overridden.</li>
 *       <li>Before adding an override, the location extension must already have
 *       been added to the ad's campaign using a {@linkplain CampaignAdExtension
 *       campaign ad extension}.</li>
 *       <li>Once you set the location for an ad extension override, it cannot be
 *       updated. If you delete the ad's override, any new overrides will inherit the
 *       location information from the deleted one.</li>
 *       </ul>
 *       <p>For general information about ad extensions, see the
 *       <a href=
 *       "http://adwords.google.com/support/aw/bin/answer.py?hl=en&amp;answer=141826"
 *       >AdWords Help Center</a>.</p>
 *     
 * 
 * This class was generated by the JAX-WS RI.
 * JAX-WS RI 2.1.6
 * Generated source version: 2.1
 * 
 */
@WebService(name = "AdExtensionOverrideServiceInterface", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201109_1")
@XmlSeeAlso({
    ObjectFactory.class
})
public interface AdExtensionOverrideServiceInterface {


    /**
     * 
     *         Returns a list of AdExtensionOverrides based on an
     *         AdExtensionOverrideSelector.
     *         @param selector the selector specifying the query
     *         @return the page containing the AdExtensionOverride which meet the
     *         criteria specified by the selector
     *       
     * 
     * @param selector
     * @return
     *     returns com.google.api.ads.adwords.jaxws.v201109_1.cm.AdExtensionOverridePage
     * @throws ApiException_Exception
     */
    @WebMethod
    @WebResult(name = "rval", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201109_1")
    @RequestWrapper(localName = "get", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201109_1", className = "com.google.api.ads.adwords.jaxws.v201109_1.cm.AdExtensionOverrideServiceInterfaceget")
    @ResponseWrapper(localName = "getResponse", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201109_1", className = "com.google.api.ads.adwords.jaxws.v201109_1.cm.AdExtensionOverrideServiceInterfacegetResponse")
    public AdExtensionOverridePage get(
        @WebParam(name = "selector", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201109_1")
        AdExtensionOverrideSelector selector)
        throws ApiException_Exception
    ;

    /**
     * 
     *         Applies the list of mutate operations.
     *         Conditions for adding an ad-level AdExtension override using an AdExtension
     *         under the Ad's campaign:
     *         1) If the text ad has never been overridden, an AdExtension override may
     *         be set on the creative using an extension under the campaign, along with
     *         any override info.
     *         2) If the text ad has been overriden before, the latitude/longitude of the
     *         new extension override must be the same as the previous override and
     *         no override info can be specified (ie. the override info will inherit from
     *         the previous override info).
     *         @param operations the operations to apply. The same ad extension override
     *         cannot be specified in more than one operation.
     *         @return the applied ad extension overrides
     *       
     * 
     * @param operations
     * @return
     *     returns com.google.api.ads.adwords.jaxws.v201109_1.cm.AdExtensionOverrideReturnValue
     * @throws ApiException_Exception
     */
    @WebMethod
    @WebResult(name = "rval", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201109_1")
    @RequestWrapper(localName = "mutate", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201109_1", className = "com.google.api.ads.adwords.jaxws.v201109_1.cm.AdExtensionOverrideServiceInterfacemutate")
    @ResponseWrapper(localName = "mutateResponse", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201109_1", className = "com.google.api.ads.adwords.jaxws.v201109_1.cm.AdExtensionOverrideServiceInterfacemutateResponse")
    public AdExtensionOverrideReturnValue mutate(
        @WebParam(name = "operations", targetNamespace = "https://adwords.google.com/api/adwords/cm/v201109_1")
        List<AdExtensionOverrideOperation> operations)
        throws ApiException_Exception
    ;

}
